#include <memory>

class Network {
public:
    void asyncSend(std::function<void(bool)> callback);
};

class ConferenceRoom : public std::enable_shared_from_this<ConferenceRoom> {
public:
    void sendData();
    
private:
    void handleSendSuccess();
    
    std::shared_ptr<Network> network_;
};
void ConferenceRoom::sendData() {
    auto weak_self = std::weak_ptr<ConferenceRoom>(shared_from_this());
    
    network_->asyncSend([weak_self](bool success) {
        // 网络操作可能需要很长时间
        // 在此期间 ConferenceRoom 可能已经被销毁
        
        auto strong_self = weak_self.lock();
        if (strong_self && success) {
            // 只有对象仍存在且发送成功时才处理结果
            strong_self->handleSendSuccess();
        }
        // 如果对象已销毁，则什么都不做，避免访问野指针
    });
}